home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 October / EnigmA AMIGA RUN 01 (1995)(G.R. Edizioni)(IT)[!][issue 1995-10][Aminet 7].iso / Aminet / dev / amos / AMOSL0595.lzh / AMOSLIST / 000084_amos-request@svcs1.digex.net_Fri May 19 17:34:09 1995.msg < prev    next >
Internet Message Format  |  1995-06-01  |  6KB

  1. Received: from svcs1.digex.net by www1.access.digex.net with SMTP id AA06109
  2.   (5.67b8/IDA-1.5); Fri, 19 May 1995 17:34:08 -0400
  3. Received: by svcs1.digex.net id AA19998
  4.   (5.67b8/IDA-1.5 for amos-out); Fri, 19 May 1995 08:52:59 -0400
  5. Received: from mail1.access.digex.net by svcs1.digex.net with SMTP id AA19994
  6.   (5.67b8/IDA-1.5 for <amos-list@svcs1.digex.net>); Fri, 19 May 1995 08:52:57 -0400
  7. Received: from ruucv1.chem.ruu.nl by mail1.access.digex.net with SMTP id AA16075
  8.   (5.67b8/IDA-1.5 for <amos-list@access.digex.net>); Fri, 19 May 1995 08:51:54 -0400
  9. Received: from tc6.chem.ruu.nl by ruucv1.chem.ruu.nl (5.65/4.13) with SMTP 
  10.     id AA22674; Fri, 19 May 1995 14:52:54 +0200
  11. Received: by tc6.chem.ruu.nl (1.37.109.4/4.31) 
  12.     id AA21992; Fri, 19 May 95 14:57:41 +0200
  13. Message-Id: <9505191257.AA21992@tc6.chem.ruu.nl>
  14. Subject: rtez_on_myscreen?
  15. To: amos-list@access.digex.net (Amos-Mailing-List)
  16. Date: Fri, 19 May 95 14:57:37 METDST
  17. From: m.g.d.wehrens@chem.ruu.nl (Martijn Wehrens)
  18. Organisation:  University Utrecht
  19. Reply: m.g.d.wehrens@chem.ruu.nl
  20. Reply-To: m.g.d.wehrens@chem.ruu.nl
  21. Mailer: Elm [revision: 70.85]
  22. Status: RO
  23. X-Status: 
  24.  
  25. Hi all,
  26.  
  27. The other day, Tumu / BFB team <tumu@janus.otol.fi
  28. posted a message containing the code needed to make use of the
  29. reqtools requesters rtezrequest and rtfilrequest. They used a function
  30.  
  31. _RTFILENAMEPTR=Ma Malloc(108,Mem Public+Mem Clear)
  32.  
  33. in their code. I suppose this is to do a 'allocmem' from exec and this
  34. can be done without the extension they propose. The easiest way is
  35. to make use of :
  36.  
  37. Reserve as work 6,108
  38. Poke$ Start(6),String$(chr$(0),108)
  39. _RTFILENAMEPRT=Start(6)
  40.  
  41. Further, they use the Elmem$ functions to read out the text, this
  42. can also be done with:
  43.  
  44. _RTFILE$=Peek$(_RTFILENAMEPRT,108,chr$(0))
  45.  
  46. which leads to the exact same result. However, there may be a reason
  47. to do this as they did, if there is: Please post a message explaining
  48. why!
  49.  
  50. Also:
  51. I use the following code in my program to create an intuition-screen
  52. and replace the bitmap-pointers with the ones from the amos-screen.
  53. That way, you'll see your amos-screen in the intuiscreen, and thus it
  54. should be possible to have the reqtools on your amos-screen. After
  55. the requesters are done, you can put the intuiscreen away.
  56. There are two serious flaws in this design (other than the ones you
  57. might detect :-) 
  58. a) the openscreen-call will create two bitmaps i don't use.
  59.    (this can be overcome because the bitmaps can buffer the
  60.     amos-screen but it costs some chipmem...)
  61. b) Nico Francois clearly states in his documents on RT that one
  62.    should *not* use the 'screen'-tag to decide on which screen the
  63.    requester is to come. One should use 'pubscreen' instead.
  64. The problem is: how do I set the 'screen'-tag in the taglist or what
  65. ever it is called in amos ? I studied the c-source 'demo.c'-file in the
  66. distribution but I have no idea where I must 'loke' my screen-base in
  67. order to have RT recognize it.
  68.  
  69. Anyone ?
  70.  
  71. code:
  72. -------------------------------------------------------------snap---
  73. Screen Open 0,640,256,4,Hires : Paper 0 : Pen 1 : Cls 0
  74. _INTSCR[0,640,200,2,"My Screen"]
  75. SCR=Param
  76. Amos To Back 
  77. Dir 
  78. '
  79. Lib Open 1,"reqtools.library",0
  80. _RTEZREQUEST["Pull the screen!","return to amos"," "]
  81. Lib Close 
  82. '
  83. Amos To Front 
  84. 'opruimen met close-screen 
  85. Areg(0)=SCR : If SCR=0 Then End 
  86. OK=Intcall(-66)
  87. '------------------------------------------- 
  88. Procedure _INTSCR[NR,_WIDTH,_HEIGHT,_PLANES,NAM$]
  89. 'struct newscreen
  90.    Reserve As Work 6,32 : S=Start(6)
  91.    Doke S,0 : Add S,2
  92.    Doke S,0 : Add S,2
  93.    Doke S,_WIDTH : Add S,2
  94.    Doke S,_HEIGHT : Add S,2
  95.    Doke S,_PLANES : Add S,2
  96.    Poke S,0 : Inc S
  97.    Poke S,1 : Inc S
  98.    Doke S,32768 : Add S,2 : Rem screen mode(hires) 
  99.    Doke S,15 : Add S,2
  100.    Loke S,$0 : Add S,4
  101.    A$=NAM$+Chr$(0) : FRE=Free
  102.    Loke S,Varptr(A$) : Add S,4
  103.    Loke S,$0 : Add S,4
  104.    Loke S,$0 : Rem end of struct  
  105. '
  106. Areg(0)=Start(6) : Rem where to find 'struct newscreen'   
  107. SCR=Intcall(-198) : Rem openscreen   
  108.  
  109.    If SCR=0 Then Pop Proc[SCR] : Rem something is wrong!  
  110.    Erase(6) : Rem trash 'struct newscreen'   
  111.    Amos To Back 
  112. 'set bit for 'Custom Bit Map'
  113.    Doke SCR+20,Deek(SCR+20) or %1000000
  114. 'now to open an amos-screen of requested size: 
  115.    Screen Open NR,_WIDTH,_HEIGHT,2^_PLANES,Hires
  116.    Cls 0 : Pen 1 : Paper 0
  117.    SB=Screen Base : Rem get address for planes   
  118.    For R=0 To _PLANES-1
  119.       Loke SCR+184+8+R*4,Leek(SB+R*4) : Rem   replace bitmap-pointers  
  120.    Next 
  121.    Areg(0)=SCR
  122.    OK=Intcall(-252) : Rem  screen to front   
  123.    OK=Intcall(-384) : Rem  remake display (to see change)  
  124. End Proc[SCR]
  125. Procedure _RTEZREQUEST[_REQ$,_GADS$,_TITLE$]
  126.    Dreg(0)=1
  127.    Areg(0)=0
  128.    RES=Lib Call(1,-$1E) : Rem make buffer
  129.    If RES=0 Then Pop Proc[-1]
  130.    ' 0 for filereq
  131.    ' 1 for easy req.
  132.    ' 2 font 
  133.    ' 3 screen 
  134.    Areg(1)=Varptr(_REQ$)
  135.    Areg(2)=Varptr(_GADS$)
  136.    Areg(3)=RES
  137.    Areg(4)=0
  138.    Areg(0)=0
  139.    X=Free : Rem make sure the only _title$ is this one 
  140.    Loke _REQBUFFER+12,Varptr(_TITLE$)
  141.  
  142.    RES2=Lib Call(1,-$42) : Rem ezrequest
  143.  
  144.    Areg(1)=_REQBUFFER
  145.    RES3=Lib Call(1,-$24) : Rem clear reqbuffer
  146. End Proc[RES2]
  147. --------------------------------------------------------------
  148.  
  149. Anyone, please ?
  150.  
  151. ---------------------------------------------------------------
  152. Martijn Wehrens, Theoretical Chemistry Group Utrecht University
  153. email m.g.d.wehrens@chem.ruu.nl          
  154. ---------------------------------------------------------------